解釋依賴只能往內,不可以往外。
在 Clean Architecture 裡,每一層就像一座城。
越裡面的城越重要、越穩定,
外層的功能只能「依賴」裡層,不能反過來。
這就像「護城河」:
外層的河保護城堡,但水不能倒流進去亂沖城牆。
讓邊界清楚,才能守住安全、穩定的中心。
AI 王國有一座巨大的城堡。
裡面住著「智慧核心」——它負責思考與做決定。
外面一圈是「信差區」,負責把訊息傳進來;
再外一圈是「工具區」,有馬車、信鴿、魔法螢幕(像框架與 API)。
有一天,一隻信鴿想要飛進城堡改國王的命令。
士兵立刻阻止牠:「外層不能改內層!只能把訊息傳進來!」
因為一旦外層能反控制內層,整個王國就會亂掉。
這條規則就叫「依賴只能往內」。
外層可以用內層的規則,但內層不能依賴外層的工具。
在 AI 系統中,我們常有這幾層:
依賴方向永遠往內:
Frameworks → Adapters → UseCases → Entities
範例(JavaScript 模擬):
// 核心:AI 的規則(不能依賴外部)
class AICore {
think(question) {
return "根據規則思考:" + question;
}
}
// 任務層:使用核心邏輯
class AIUseCase {
constructor(core) {
this.core = core;
}
run(q) {
return this.core.think(q);
}
}
// 外層框架:呼叫任務層
function main() {
const core = new AICore();
const useCase = new AIUseCase(core);
console.log(useCase.run("今天會不會下雨?"));
}
main();
如果反過來──核心去呼叫外部框架,就像國王自己跑去郵局寄信,
整個系統就會變得混亂又難維護。
「依賴只能往內」就像 AI 王國的護城河,
外層要尊重邊界,不能直接干擾核心。
這樣 AI 才能安全、穩定、可維護。
你會怎麼畫出護城河,確保外層不能影響內層?